# -*- coding: latin-1 -*-
import sys,  codecs
from PyQt4.QtGui import QDataWidgetMapper,  QDialog
from PyQt4.QtSql import QSqlQuery
from PyQt4.QtCore import QVariant,  SIGNAL

sys.path.append("../")

from vista.altaMascota_vista import Ui_FormAltaMascota
from modelo.mascota_modelo import mascota_modelo
from modelo.duenio_modelo import duenio_modelo

DEBUG = False

class editarMascota_controlador(Ui_FormAltaMascota):
    def __init__(self, mascota,  seleccionado):
        self.widget = QDialog()
        self.setupUi(self.widget)
        self.conectarControladorConVista()
        self.cargarDatosMascota(seleccionado, mascota)
        self.mapearVistaConModelo(seleccionado)
        self.cargarDatosDuenio()
        
    def cargarDatosDuenio(self):
        self.duenio = duenio_modelo()
        idDuenio = self.record.value("id_duenio").toInt()[0] 
        apellidoDuenio = self.duenio.apellidoDuenio(idDuenio)
        nombreDuenio = self.duenio.nombreDuenio(idDuenio)
        apellido = codecs.decode(apellidoDuenio,'iso8859-1')
        nombre = codecs.decode(nombreDuenio, 'iso8859-1')
        self.labelidDuenio.setText(str(idDuenio))
        self.labelnombreDuenio.setText(nombre)
        self.labelapellidoDuenio.setText(apellido)
        del(self.duenio)
        
    def conectarControladorConVista(self):
        self.widget.connect(self.pushButtonGuardar, SIGNAL("clicked()"), 
             		    self.guardar)       

    def mapearVistaConModelo(self,  seleccionado):
        self.mapper = QDataWidgetMapper()
        self.mapper.setSubmitPolicy(QDataWidgetMapper.ManualSubmit)
        self.mapper.setModel(self.mascota.model)
        self.mapper.addMapping(self.lineEditRaza, self.mascota.RAZA)
        self.mapper.addMapping(self.lineEditNombre, self.mascota.NOMBRE)
        self.mapper.addMapping(self.lineEditPelaje,  self.mascota.PELAJE)
        self.mapper.addMapping(self.dateEditFechaNacimiento,  self.mascota.FECHANACIMIENTO)
        self.mapper.addMapping(self.dateEditFechaAlta,  self.mascota.FECHAALTA)
        self.mapper.addMapping(self.lineEditTipoMascota,  self.mascota.ESPECIE)
        self.mapper.setCurrentModelIndex(seleccionado)
        
    def cargarDatosMascota(self, seleccionado, mascota):
        self.mascota = mascota
        self.record = self.mascota.model.record(seleccionado.row())
        self.idMascota = self.record.value("id_animal").toInt()[0]
        self.sexo= self.record.value("sexo").toString()
        if self.sexo == "Hembra":
            self.radioButtonHembra.setChecked(True)
        else:
            self.radioButtonMacho.setChecked(True)
        
    def guardar(self):
        sexo= "Macho" if self.radioButtonMacho.isChecked() else "Hembra"
        query = QSqlQuery()
        query.prepare("UPDATE animal SET sexo = :sexo where id_animal = :id_animal" )
        query.bindValue(":sexo", QVariant(sexo)) 
        query.bindValue(":id_animal", QVariant(self.idMascota)) 
        query.exec_()
        self.mapper.submit()
        self.widget.close()
